package com.axzhengxin.platform.afterloan.mapper;

import com.axzhengxin.platform.afterloan.domain.FspCorInf;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * FspCorInfMapper
 * 客户信息表访问接口
 *
 * @author jiangnan
 * @date 2021/2/22
 */
public interface FspCorInfMapper {

    /**
     * 根据客户信息ID查询唯一的客户信息
     *
     * @param id 客户信息ID
     * @return 客户信息
     */
    FspCorInf selectFspCorInfById(String id);

    /**
     * 根据客户名称查询唯一的客户信息
     *
     * @param name 客户名称
     * @return 客户信息
     */
    FspCorInf selectFspCorInfByName(String name);

    /**
     * 查询客户列表
     *
     * @param fspCorInf 查询条件
     * @return 查询结果
     */
    List<FspCorInf> selectFspCorInfoList(FspCorInf fspCorInf);

    /**
     * 查询与当前用户相关的客户列表
     *
     * @param fspCorInf 查询条件
     * @return 查询结果
     */
    List<FspCorInf> selectMyCustomer(FspCorInf fspCorInf);

    /**
     * 查询有未结清贷款，且已上传授权书的客户信息
     *
     * @return 查询结果集合
     */
    List<FspCorInf> selectFspCorInfWithUnfinishedLoan();

    /**
     * 查询所有存量业务上传相关，且已上传授权书的客户信息
     *
     * @return 查询结果集合
     */
    List<FspCorInf> selectFspCorInfWithInventoryLoan();

    /**
     * 根据customerId获取对象消息
     * @param customerId 客户编号
     * @return 客户对象
     */
    FspCorInf selectFspCorInfByCustomerId(@Param(value = "customerId") String customerId);

    /**
     * 根据customerName获取customerId
     *
     * @param customerName 客户名称
     * @return 客户编号
     */
    String selectCustomerIdByCustomerName(@Param(value = "customerName") String customerName);
}
